package org.shoukaiseki.apiview.common.util;

import java.math.BigDecimal;
import java.math.RoundingMode;

/**
 * org.shoukaiseki.apiview.common.util.ByteUtils
 * <br>
 *
 * @author 蒋カイセキ    Japan-Tokyo  19-4-17 下午5:41<br>
 * ブログ http://www.shoukaiseki.top/<br>
 * E-メール jiang28555@Gmail.com<br>
 **/
public class ByteUtils {

    /**
     * 字节转换为KB,MB,GB
     * @param size
     * @return
     */
    public static String byteFormat(Long size){

        return byteFormat(size,3);
    }

    public static String byteFormat(Long size,Integer scale){
        if (size > 1024 * 1024 * 1024) {
            return new BigDecimal(size).divide(BigDecimal.valueOf((1024 * 1024 * 1024)), scale, RoundingMode.HALF_UP).floatValue() + "GB";
        }
        if (size > 1024 * 1024) {
            return new BigDecimal(size).divide(BigDecimal.valueOf((1024 * 1024)), scale, RoundingMode.HALF_UP).floatValue() + "MB";
        }

        if (size > 1024) {
            return new BigDecimal(size).divide(BigDecimal.valueOf(1024), scale, RoundingMode.HALF_UP).floatValue() + "KB";
        } else {
            return size.toString() + "B";
        }

    }

}
